home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.5 Complementary Applications 2004 February / SGI IRIX 6.5 Complementary Applications 2004 February.iso / dist / cde.idb / usr / dt / share / include / Xm / RowColumnP.h.z / RowColumnP.h
Encoding:
C/C++ Source or Header  |  2003-11-18  |  20.3 KB  |  542 lines

  1. /*
  2.  * RowColumnP.h
  3.  *
  4.  * Copyright 2000, Silicon Graphics, Inc.
  5.  * ALL RIGHTS RESERVED
  6.  * 
  7.  * UNPUBLISHED -- Rights reserved under the copyright laws of the United
  8.  * States.   Use of a copyright notice is precautionary only and does not
  9.  * imply publication or disclosure.
  10.  *
  11.  * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
  12.  * Use, duplication or disclosure by the Government is subject to restrictions
  13.  * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
  14.  * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
  15.  * in similar or successor clauses in the FAR, or the DOD or NASA FAR
  16.  * Supplement.  Contractor/manufacturer is Silicon Graphics, Inc.,
  17.  * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
  18.  *
  19.  * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
  20.  * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
  21.  * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
  22.  * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
  23.  * GRAPHICS, INC.
  24.  */
  25. /* 
  26.  * @OSF_COPYRIGHT@
  27.  * (c) Copyright 1990, 1991, 1992, 1993, 1994 OPEN SOFTWARE FOUNDATION, INC.
  28.  * ALL RIGHTS RESERVED
  29.  *  
  30. */ 
  31. /*
  32.  * HISTORY
  33.  * Motif Release 1.2.5
  34. */
  35. /*   $XConsortium: RowColumnP.h /main/cde1_maint/2 1995/08/18 19:19:08 drk $ */
  36. /*
  37. *  (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
  38. #ifndef _XmRowColumnP_h
  39. #define _XmRowColumnP_h
  40.  
  41. #include <Xm/RowColumn.h>
  42. #include <Xm/ManagerP.h>
  43.  
  44. #ifdef __cplusplus
  45. extern "C" {
  46. #endif
  47.  
  48. /* Button Event Status Record for popup verification at manage time */
  49. typedef struct _XmButtonEventStatusRec
  50. {
  51.     Time time;
  52.     Boolean verified;
  53. #ifndef WAIT_FOR_BETTER_GRAB_SOLUTION
  54.     Boolean waiting_to_be_managed;
  55. #endif
  56.     XButtonEvent event;
  57. } XmButtonEventStatusRec;
  58.  
  59. /* replay info rec - last menu that was posted before event replay */
  60. typedef struct _XmReplayInfoRec
  61. {
  62.     Time time;
  63.     Widget toplevel_menu;
  64. } XmReplayInfoRec;
  65.  
  66. typedef struct _XmMenuFocusRec
  67. {
  68.     Widget  oldWidget;
  69.     Window  oldFocus;
  70.     int     oldRevert;
  71. } XmMenuFocusRec;
  72.  
  73. /* Menu State is per screen */
  74. typedef struct _XmMenuStateRec
  75. {
  76.    Widget RC_LastSelectToplevel;
  77.    XmButtonEventStatusRec RC_ButtonEventStatus;
  78.    XmReplayInfoRec RC_ReplayInfo;
  79. /*
  80.  * needed for funky menubar mode so that the traversal can be restored
  81.  * to the correct highlighted item when we are done.
  82.  */
  83.    Widget RC_activeItem;
  84.    XmMenuFocusRec RC_menuFocus;
  85. /*
  86.  * A workaround is provided to allow applications to get insensitive
  87.  * menu items.  This is useful for context "sensitive-shared-tear off-
  88.  * accelerated" menu items.  Accessed via internal (for now) function,
  89.  * _XmAllowAcceleratedInsensitiveUmanagedMenuItems().
  90.  */
  91.    Boolean RC_allowAcceleratedInsensitiveUnmanagedMenuItems;
  92.    Time MS_LastManagedMenuTime;
  93.    Boolean MU_InDragMode;
  94.    Widget MU_CurrentMenuChild;
  95.    Boolean MU_InPMMode;
  96. } XmMenuStateRec, *XmMenuState;
  97.  
  98.  
  99. typedef struct _XmRCKidGeometryRec
  100. {
  101.   Widget kid;
  102.   XtWidgetGeometry  box;
  103.   Dimension margin_top;
  104.   Dimension margin_bottom;
  105.   Dimension baseline;
  106. } XmRCKidGeometryRec, *XmRCKidGeometry;
  107.  
  108. /* The RowColumn instance record */
  109.  
  110. typedef    struct _XmRowColumnPart
  111. {
  112.     Dimension       margin_height;  /* margin around inside of widget */
  113.     Dimension       margin_width;
  114.  
  115.  
  116.     Dimension       spacing;        /* pixels between entries */
  117.     Dimension       entry_border;   /* size of entry borders */
  118.  
  119.                     /* next only used w/ menubars */
  120.  
  121.     Widget      help_pushbutton;    /* ptr to help pushbutton widget */
  122.  
  123.     Widget      cascadeBtn;         /* if this menu is pulled down by a */
  124.                                     /* pulldown widget this will point */
  125.                                     /* at the pulldown.  needed to go */
  126.                                     /* up the cascade */
  127.  
  128.                     /* next two only used w/ option menus */
  129.                     /* they are really only temporary */
  130.                     /* since the data is passed off to */
  131.                     /* the pulldown widget which is */
  132.                     /* automatically built */
  133.  
  134.     XmString  option_label;         /* label for option menu pulldown */
  135.  
  136.     Widget      option_submenu;     /* which submenu to pulldown */
  137.  
  138.  
  139.     XmRCKidGeometry   boxes;          /* when doing menu layouts is an */
  140.                                     /* array of geo req's to make it easy */
  141.  
  142.     WidgetClass     entry_class;    /* if homogeneous, what class */
  143.  
  144.     XtCallbackList  entry_callback; /* a child fired off */
  145.     XtCallbackList  map_callback;   /* about to be mapped call back */
  146.     XtCallbackList  unmap_callback; /* about to be unmapped call back */
  147.  
  148.     Widget      memory_subwidget;   /* id of last subwidget that */
  149.                                     /* fired off.  Recorded by the */
  150.                                     /* entry_fired proc, can be set too */
  151.                                     /* this causes mouse/muscle memory */
  152.                                     /* to also be reset */
  153.  
  154.     short       num_columns;        /* if columnar packing this is how */
  155.                                     /* many columns to use */
  156.  
  157.     String        menuPost;        /* a translation for posting popups */
  158.     unsigned int    postButton;     /* active mouse button */
  159.     int             postEventType;  /* active mouse event type */
  160.     unsigned int    postModifiers;  /* active mouse modifier */
  161.  
  162.     String      menu_accelerator;
  163.     KeySym        mnemonic;
  164.     XmStringCharSet mnemonicCharSet;
  165.  
  166.     unsigned char   entry_alignment; /* type of label alignment */
  167.                                      /* our children should have */
  168.  
  169.                     /* next two are layout, Tight is the */
  170.                     /* standard menubar packing.  Columns */
  171.                     /* is radio box style, orientation */
  172.                     /* determines if it is column or row */
  173.                     /* major, Vert = column major */
  174.  
  175.     unsigned char   packing;    /* entry packing (layout) style */
  176.  
  177.     unsigned char   type;       /* temporary: diff between menu/bar */
  178.  
  179.     unsigned char   orientation;    /* horizontal or vertical */
  180.  
  181.                     /* next two indicate how the widget */
  182.                     /* responds to size changes if there */
  183.                     /* is no geo mgr.  If true then the */
  184.                     /* dimension is never changed.  Set */
  185.                     /* to true if dimension is spec'd */
  186.                     /* at create time */
  187.  
  188.     Boolean     armed;      /* controls whether pulldowns work */
  189.                             /* or not, button down in any part of */
  190.                             /* the menubar arms it, this is a bit field  */
  191.                             /* used for other internal flags, see macros */ 
  192.  
  193.                     /* next is only valid for popup menus */
  194.  
  195.     Boolean     adjust_margin;  /* T/F, indicating if we should force */
  196.                                 /* all subwidgets to have similar */
  197.                                 /* margins */
  198.     
  199.     Boolean     adjust_last;    /* Indicates whether or not the last row */
  200.                                 /* row or column should be stretched to  */
  201.                                 /* the edge of the row_column widget.    */
  202.  
  203.     Boolean     do_alignment;   /* T/F, do we force alignment on all */
  204.                                 /* our children */
  205.  
  206.     Boolean     radio;          /* T/F, do we do the toggle button */
  207.                                 /* 'only-one-down' enforcement */
  208.  
  209.     Boolean     radio_one;      /* T/F, must have one radio button */
  210.                                 /* set to on */
  211.  
  212.  
  213.     Boolean     homogeneous;    /* T/F, do we only allow a single */
  214.                                 /* class of children */
  215.  
  216.     Boolean     resize_width;
  217.     Boolean     resize_height;
  218.  
  219.     Boolean     popup_enabled;
  220.  
  221.     Dimension    old_width;        /* save the old width, etc to use  */
  222.     Dimension    old_height;        /* at resize time since it now has */
  223.     Dimension    old_shadow_thickness;   /* NW gravity                      */
  224.  
  225.     Widget *    postFromList;        /* list for sharing menupanes */
  226.     int        postFromCount;        /* count of the list */
  227.     int        postFromListSize;    /* size of the malloc'ed list */
  228.  
  229.     Widget      lastSelectToplevel;     /* returned in XmGetPostedFromWidget*/ 
  230.     Widget    popupPosted;        /* popup submenu currently posted */
  231.  
  232.     unsigned char oldFocusPolicy;    /* save when menus begin traversal */
  233.  
  234.     /***************** 1.2 ***************/
  235.     unsigned char    TearOffModel;    /* enable/disable flag */
  236.     Widget        ParentShell;    /* Save the parent shell when torn */
  237.     Widget        tear_off_control;
  238.     Boolean        to_state;    /* tear off state */
  239.     /* tear off activate/deactivate callbacks */
  240.     XtCallbackList    tear_off_activated_callback;
  241.     XtCallbackList    tear_off_deactivated_callback;
  242.     Widget        tear_off_lastSelectToplevel;
  243.     Widget        tear_off_focus_item;    /* when tear off is inactive */
  244.     
  245.     unsigned char    entry_vertical_alignment;
  246.     unsigned char    popup_menu_click;
  247.     XtIntervalId    popup_timeout_timer;
  248. } XmRowColumnPart;
  249.  
  250.  
  251. /* Full instance record declaration */
  252.  
  253. typedef struct _XmRowColumnRec
  254. {
  255.     CorePart        core;
  256.     CompositePart    composite;
  257.     ConstraintPart    constraint;
  258.     XmManagerPart    manager;
  259.     XmRowColumnPart    row_column;
  260. } XmRowColumnRec;
  261.  
  262. typedef struct _XmRowColumnWidgetRec /* OBSOLETE (for compatibility only).*/
  263. {
  264.     CorePart        core;
  265.     CompositePart    composite;
  266.     ConstraintPart    constraint;
  267.     XmManagerPart    manager;
  268.     XmRowColumnPart    row_column;
  269. } XmRowColumnWidgetRec;
  270.  
  271.  
  272.  
  273. /* RowColumn class structure */
  274.  
  275. typedef struct _XmRowColumnClassPart
  276. {
  277.     XmMenuProc    menuProcedures; /* proc to interface with menu widgets */
  278.     XtActionProc armAndActivate; /* proc triggered by acclerator */
  279.     XmMenuTraversalProc traversalHandler;/* proc to handle menu traversal */
  280.     XtPointer   extension;      /* Pointer to extension record */
  281. } XmRowColumnClassPart;
  282.  
  283.  
  284.  
  285. typedef struct _XmRowColumnClassRec 
  286. {
  287.     CoreClassPart        core_class;
  288.     CompositeClassPart        composite_class;
  289.     ConstraintClassPart        constraint_class;
  290.     XmManagerClassPart        manager_class;
  291.     XmRowColumnClassPart    row_column_class;
  292. } XmRowColumnClassRec;
  293.  
  294. externalref XmRowColumnClassRec     xmRowColumnClassRec;
  295.  
  296.  
  297.  
  298. /* Constraint Definition */
  299.  
  300. /* No constraint resources */
  301.  
  302. typedef struct _XmRowColumnConstraintPart
  303. {
  304.     Boolean    was_managed;
  305.         Dimension margin_top;
  306.         Dimension margin_bottom;
  307.         Dimension baseline;
  308.     short position_index;
  309. } XmRowColumnConstraintPart;
  310.  
  311. typedef struct _XmRowColumnConstraintRec
  312. {
  313.     XmManagerConstraintPart manager;
  314.     XmRowColumnConstraintPart row_column;
  315. } XmRowColumnConstraintRec;
  316.  
  317.  
  318. /* Access Macros */
  319. #define XmRC_ARMED_BIT          (1 << 0)    
  320. #define XmRC_BEING_ARMED_BIT  (1 << 1)        /* bits in menu's armed byte */
  321. #define XmRC_EXPOSE_BIT       (1 << 2)        /* used in both menu and */
  322. #define XmRC_WINDOW_MOVED_BIT (1 << 3)        /* popup menu, careful */
  323. #define XmRC_WIDGET_MOVED_BIT (1 << 4)
  324. #define XmRC_POPPING_DOWN_BIT (1 << 5)
  325. #define XmRC_FROM_RESIZE_BIT  (1 << 6)
  326.  
  327. #define RC_IsArmed(m)     (((XmRowColumnWidget)(m))->row_column.armed & XmRC_ARMED_BIT)
  328. #define RC_BeingArmed(m) (((XmRowColumnWidget)(m))->row_column.armed & XmRC_BEING_ARMED_BIT)
  329. #define RC_DoExpose(m)     (((XmRowColumnWidget)(m))->row_column.armed & XmRC_EXPOSE_BIT)
  330. #define RC_WidgetHasMoved(m) (((XmRowColumnWidget)(m))->row_column.armed & XmRC_WIDGET_MOVED_BIT)
  331. #define RC_WindowHasMoved(m) (((XmRowColumnWidget)(m))->row_column.armed & XmRC_WINDOW_MOVED_BIT)
  332. #define RC_PoppingDown(m) (((XmRowColumnWidget)(m))->row_column.armed & XmRC_POPPING_DOWN_BIT)
  333. #define RC_FromResize(m) (((XmRowColumnWidget)(m))->row_column.armed & XmRC_FROM_RESIZE_BIT)
  334.  
  335.  
  336. #define RC_SetBit(byte,bit,v)  byte = (byte & (~bit)) | (v ? bit : 0)
  337.  
  338. #define RC_SetArmed(m,v)  RC_SetBit (((XmRowColumnWidget)(m))->row_column.armed, XmRC_ARMED_BIT, v)
  339. #define RC_SetBeingArmed(m,v)  RC_SetBit (((XmRowColumnWidget)(m))->row_column.armed, XmRC_BEING_ARMED_BIT, v)
  340. #define RC_SetExpose(m,v) RC_SetBit (((XmRowColumnWidget)(m))->row_column.armed, XmRC_EXPOSE_BIT, v)
  341. #define RC_SetWidgetMoved(m,v) RC_SetBit(((XmRowColumnWidget)(m))->row_column.armed, XmRC_WIDGET_MOVED_BIT,v)
  342. #define RC_SetWindowMoved(m,v) RC_SetBit(((XmRowColumnWidget)(m))->row_column.armed, XmRC_WINDOW_MOVED_BIT,v)
  343. #define RC_SetPoppingDown(m,v) RC_SetBit(((XmRowColumnWidget)(m))->row_column.armed, XmRC_POPPING_DOWN_BIT,v)
  344. #define RC_SetFromResize(m,v) RC_SetBit(((XmRowColumnWidget)(m))->row_column.armed, XmRC_FROM_RESIZE_BIT,v)
  345.  
  346. #define RC_MarginW(m)        (((XmRowColumnWidget)(m))->row_column.margin_width)
  347. #define RC_MarginH(m)        (((XmRowColumnWidget)(m))->row_column.margin_height)
  348.  
  349. #define RC_Entry_cb(m)        (((XmRowColumnWidget)(m))->row_column.entry_callback)
  350. #define RC_Map_cb(m)        (((XmRowColumnWidget)(m))->row_column.map_callback)
  351. #define RC_Unmap_cb(m)        (((XmRowColumnWidget)(m))->row_column.unmap_callback)
  352.  
  353. #define RC_Orientation(m)   (((XmRowColumnWidget)(m))->row_column.orientation)
  354. #define RC_Spacing(m)        (((XmRowColumnWidget)(m))->row_column.spacing)
  355. #define RC_EntryBorder(m)   (((XmRowColumnWidget)(m))->row_column.entry_border)
  356. #define RC_HelpPb(m)        (((XmRowColumnWidget)(m))->row_column.help_pushbutton)
  357. #define RC_DoMarginAdjust(m)  (((XmRowColumnWidget)(m))->row_column.adjust_margin)
  358. #define RC_EntryAlignment(m)  (((XmRowColumnWidget)(m))->row_column.entry_alignment)
  359. #define RC_EntryVerticalAlignment(m)  (((XmRowColumnWidget)(m))->row_column.entry_vertical_alignment)
  360. #define RC_Packing(m)       (((XmRowColumnWidget)(m))->row_column.packing)
  361. #define RC_NCol(m)       (((XmRowColumnWidget)(m))->row_column.num_columns)
  362. #define RC_AdjLast(m)       (((XmRowColumnWidget)(m))->row_column.adjust_last)
  363. #define RC_AdjMargin(m)       (((XmRowColumnWidget)(m))->row_column.adjust_margin)
  364. #define RC_MemWidget(m)       (((XmRowColumnWidget)(m))->row_column.memory_subwidget)
  365. #define RC_CascadeBtn(m)   (((XmRowColumnWidget)(m))->row_column.cascadeBtn)
  366. #define RC_OptionLabel(m)  (((XmRowColumnWidget)(m))->row_column.option_label)
  367. #define RC_OptionSubMenu(m)  (((XmRowColumnWidget)(m))->row_column.option_submenu)
  368. #define RC_RadioBehavior(m)  (((XmRowColumnWidget)(m))->row_column.radio)
  369. #define RC_RadioAlwaysOne(m) (((XmRowColumnWidget)(m))->row_column.radio_one)
  370. #define RC_PopupPosted(m)    (((XmRowColumnWidget)(m))->row_column.popupPosted)
  371. #define RC_ResizeHeight(m)    (((XmRowColumnWidget)(m))->row_column.resize_height)
  372. #define RC_ResizeWidth(m)     (((XmRowColumnWidget)(m))->row_column.resize_width)
  373. #define RC_Type(m)           (((XmRowColumnWidget)(m))->row_column.type)
  374. #define RC_EntryClass(m)     (((XmRowColumnWidget)(m))->row_column.entry_class)
  375. #define RC_IsHomogeneous(m)  (((XmRowColumnWidget)(m))->row_column.homogeneous)
  376. #define RC_Boxes(m)          (((XmRowColumnWidget)(m))->row_column.boxes)
  377. #define RC_PopupEnabled(m)   (((XmRowColumnWidget)(m))->row_column.popup_enabled)
  378. #define RC_MenuAccelerator(m)  (((XmRowColumnWidget)(m))->row_column.menu_accelerator)
  379. #define RC_Mnemonic(m)   (((XmRowColumnWidget)(m))->row_column.mnemonic)
  380. #define RC_MnemonicCharSet(m)   (((XmRowColumnWidget)(m))->row_column.mnemonicCharSet)
  381. #define RC_MenuPost(m) (((XmRowColumnWidget) m)->row_column.menuPost)
  382. #define RC_PostButton(m) (((XmRowColumnWidget) m)->row_column.postButton)
  383. #define RC_PostModifiers(m) (((XmRowColumnWidget) m)->row_column.postModifiers)
  384. #define RC_PostEventType(m) (((XmRowColumnWidget) m)->row_column.postEventType)
  385.  
  386. #define RC_OldFocusPolicy(m) (((XmRowColumnWidget) m)->row_column.oldFocusPolicy)
  387. #define RC_ParentShell(m) (((XmRowColumnWidget) m)->row_column.ParentShell)
  388. #define RC_TearOffControl(m) (((XmRowColumnWidget) m)->row_column.tear_off_control)
  389. #define RC_TearOffModel(m) (((XmRowColumnWidget) m)->row_column.TearOffModel)
  390.  
  391. #define RC_popupMenuClick(m) (((XmRowColumnWidget)(m))->row_column.popup_menu_click)
  392.  
  393. /* Tear Off State */
  394.  
  395. #define XmTO_TORN_OFF_BIT    (1 << 0)
  396. #define XmTO_FROM_INIT_BIT    (1 << 1)
  397. #define XmTO_VISUAL_DIRTY_BIT    (1 << 2)
  398. #define XmTO_ACTIVE_BIT        (1 << 3)
  399.  
  400. #define RC_SetTornOff(m,v) RC_SetBit(((XmRowColumnWidget)(m))->row_column.to_state, XmTO_TORN_OFF_BIT,v)
  401.  
  402. #define RC_TornOff(m) (((XmRowColumnWidget)(m))->row_column.to_state & XmTO_TORN_OFF_BIT)
  403.  
  404. #define RC_SetFromInit(m,v) RC_SetBit(((XmRowColumnWidget)(m))->row_column.to_state, XmTO_FROM_INIT_BIT,v)
  405.  
  406. #define RC_FromInit(m)    (((XmRowColumnWidget)(m))->row_column.to_state & XmTO_FROM_INIT_BIT)
  407.  
  408. #define RC_SetTearOffDirty(m,v) RC_SetBit(((XmRowColumnWidget)(m))->row_column.to_state, XmTO_VISUAL_DIRTY_BIT,v)
  409.  
  410. #define RC_TearOffDirty(m) (((XmRowColumnWidget)(m))->row_column.to_state & XmTO_VISUAL_DIRTY_BIT)
  411.  
  412. #define RC_TearOffActive(m) (((XmRowColumnWidget)(m))->row_column.to_state & XmTO_ACTIVE_BIT)
  413.  
  414. #define RC_SetTearOffActive(m,v) RC_SetBit(((XmRowColumnWidget)(m))->row_column.to_state, XmTO_ACTIVE_BIT,v)
  415.  
  416. #define initial_value 0
  417.  
  418. /* Defines used when calling _XmProcessMenuTree() */
  419.  
  420. #define XmADD     0
  421. #define XmDELETE  1
  422. #define XmREPLACE 2
  423.  
  424.  
  425. /* Defines used when calling _XmMenuIsAccessible() */
  426.  
  427. #define XmWEAK_CHECK 1
  428. #define XmMEDIUM_CHECK 2
  429. #define XmSTRONG_CHECK 3
  430.  
  431. #define XmMENU_BEGIN 0
  432. #define XmMENU_MIDDLE 1
  433. #define XmMENU_END 2
  434.  
  435. /* Defines used when calling find_first_managed_child() */
  436. #define ANY_CHILD 0
  437. #define FIRST_BUTTON 1
  438.  
  439.  
  440. /********    Private Function Declarations    ********/
  441. #ifdef _NO_PROTO
  442.  
  443. extern void _XmPostPopupMenu() ;
  444. extern void _XmSetPopupMenuClick() ;
  445. extern Boolean _XmGetPopupMenuClick() ;
  446. extern void _XmAllowAcceleratedInsensitiveUnmanagedMenuItems();
  447. extern void _XmSetSwallowEventHandler() ;
  448. extern void _XmMenuFocus() ;
  449. extern void _XmGetActiveTopLevelMenu() ;
  450. extern Boolean _XmMatchBSelectEvent() ;
  451. extern Boolean _XmMatchBDragEvent() ;
  452. extern void _XmHandleMenuButtonPress() ;
  453. extern void _XmMenuBtnDown() ;
  454. extern void _XmMenuBtnUp() ;
  455. extern void _XmCallRowColumnMapCallback() ;
  456. extern void _XmCallRowColumnUnmapCallback() ;
  457. extern void _XmMenuPopDown () ;
  458. extern Boolean _XmIsActiveTearOff ();
  459. extern void _XmMenuHelp ();
  460. #else
  461.  
  462. extern void _XmPostPopupMenu( 
  463.                         Widget wid,
  464.                         XEvent *event) ;
  465. extern void _XmSetPopupMenuClick( 
  466.                         Widget wid,
  467. #if NeedWidePrototypes
  468.                         int popupMenuClick) ;
  469. #else
  470.                         Boolean popupMenuClick) ;
  471. #endif /* NeedWidePrototypes */
  472. extern Boolean _XmGetPopupMenuClick( 
  473.                         Widget wid) ;
  474. extern void
  475. _XmAllowAcceleratedInsensitiveUnmanagedMenuItems(
  476.         Widget wid,
  477. #if NeedWidePrototypes
  478.         int allowed ) ;
  479. #else
  480.         Boolean allowed ) ;
  481. #endif /* NeedWidePrototypes */
  482. extern void _XmSetSwallowEventHandler( 
  483.                         Widget widget,
  484. #if NeedWidePrototypes
  485.                         int add_handler) ;
  486. #else
  487.                         Boolean add_handler) ;
  488. #endif /* NeedWidePrototypes */
  489. extern void _XmMenuFocus( 
  490.                         Widget w,
  491.                         int operation,
  492.                         Time _time) ;
  493. extern void _XmGetActiveTopLevelMenu( 
  494.                         Widget wid,
  495.                         Widget *rwid) ;
  496. extern Boolean _XmMatchBSelectEvent( 
  497.                         Widget wid,
  498.                         XEvent *event) ;
  499. extern Boolean _XmMatchBDragEvent( 
  500.                         Widget wid,
  501.                         XEvent *event) ;
  502. extern void _XmHandleMenuButtonPress( 
  503.                         Widget wid,
  504.                         XEvent *event) ;
  505. extern void _XmMenuBtnDown( 
  506.                         Widget wid,
  507.                         XEvent *event,
  508.                         String *params,
  509.                         Cardinal *num_params) ;
  510. extern void _XmMenuBtnUp( 
  511.                         Widget wid,
  512.                         XEvent *event,
  513.                         String *params,
  514.                         Cardinal *num_params) ;
  515. extern void _XmCallRowColumnMapCallback( 
  516.                         Widget wid,
  517.                         XEvent *event) ;
  518. extern void _XmCallRowColumnUnmapCallback( 
  519.                         Widget wid,
  520.                         XEvent *event) ;
  521. extern void _XmMenuPopDown( 
  522.                         Widget w,
  523.                         XEvent *event,
  524.                         Boolean *popped_up) ;
  525. extern Boolean _XmIsActiveTearOff (
  526.              Widget w) ;
  527. extern void _XmMenuHelp(
  528.                         Widget wid,
  529.                         XEvent *event,
  530.                         String *params,
  531.                         Cardinal *num_params) ;
  532. #endif /* _NO_PROTO */
  533. /********    End Private Function Declarations    ********/
  534.  
  535.  
  536. #ifdef __cplusplus
  537. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  538. #endif
  539.  
  540. #endif  /* _XmRowColumnP_h */
  541. /* DON'T ADD STUFF AFTER THIS #endif */
  542.